$(function(){
    /*-- 富文本编辑器 --------------------------------------------*/
    Simditor.locale = 'zh-CN';//设置中文
    let editor = new Simditor({
        textarea: $('#editor'),//textarea的id
        placeholder: '这里输入文字...',
        toolbar: ['title', 'bold', 'italic', 'underline', 'strikethrough', 'fontScale', 'color', '|', 'ol', 'ul', 'blockquote', 'code', 'table', '|', 'link', 'image', 'hr', '|', 'indent', 'outdent', 'alignment'], //工具条都包含哪些内容
        pasteImage: true,// 不允许粘贴图片
        upload: {
            url: '/file/richtext_img_upload.do', //文件上传的接口地址
            params: null, //键值对,指定文件上传接口的额外参数,上传的时候随文件一起提交
            fileKey: 'upload_file', //服务器端获取文件数据的参数名
            connectionCount: 1,
            leaveConfirm: '正在上传图片'
        }
    });
    /*----------------------------------------------------------*/
    // 提交的文件
    let submitFiles = [];
    /*----------------------------------------------------------*/
    // 添加文件 并显示至网页 --ok
    $('#newFiles-input').change(function(ev){
        console.log('添加文件');
        let filesBox = $('#filesList');

        // 当前选中的文件
        let aFilesList = [];
        // 最新文件 添加至文件列表
        for(let i=0; i<ev.currentTarget.files.length; i++){
            aFilesList.push( ev.currentTarget.files[i] );
        }

        // 使两个文件对象相等
        submitFiles = submitFiles.concat(aFilesList);
        // 将文件列表中的数据渲染至页面
        if( submitFiles.length ){
            filesBox.html('');
            submitFiles.forEach( (item,idx)=>{
                let DOM = $('<span>' +
                    '            <a href="'+ getObjectURL(item) +'" target="_blank" >'+ item.name +'</a>' +
                    '            <i class="glyphicon glyphicon-trash Text-red Text-cup delThisFiel" ></i>' +
                    '        </span>');
                filesBox.append(DOM);
            });

        }else{
            filesBox.append($('<span>暂无附件</span>'));
        }
    });
    /*----------------------------------------------------------*/
    // 删除某个文件 -- ok
    $('#filesList').on('click','i',function(){
        let Del_idx =  $(this).parents('span').index();
        $(this).parent().remove(); //删除当前文件节点
        /*----------------------------------------------------------*/
        submitFiles.splice( Del_idx, 1 ); // 在文件列表中删除
        /*----------------------------------------------------------*/
        //判断文件列表是否为空
        if( $('#filesList').find('span').length == 0 ){
            $('#filesList').append($('<span>暂无附件</span>'));
        }
        console.log(submitFiles);
    });
    /*----------------------------------------------------------*/
    /* 发布公告 */
    $('#newAD').on('click',function(){
        /*-- 判断是否为空--------------------------------------------*/
        let newTitel = $('#newADtitle').val().trim();
        let txtArea = editor.getValue();
        if( !newTitel ){ spop_waring('请输入公告标题'); return false; }
        if( !txtArea ){ spop_waring('请输入公告内容'); return false; }

        /*----------------------------------------------------------*/
        // 创建formData 对象
        let formDate = new FormData();
        let addAD = new Promise( ( resolve, reject ) => {
            $.mask_fullscreen();

            // 如果选中了文件
            if(submitFiles.length){
                // formData添加文件数据 and 获取所有文件名
                for(let i=0; i<submitFiles.length ; i++){
                    formDate.append('upload_file[]',submitFiles[i]);
                }
                /*----------------------------------------------------------*/
                // 文件上传
                $.ajax({
                    url: '/file/upload.do',
                    type: 'post',
                    data: formDate,
                    xhrFields : {
                        withCredentials: true
                    },
                    crossDomain: true,
                    cache:false,
                    contentType: false,// 使jq不要去设置Content-Type请求头
                    processData: false,// 使jq不要去处理发送的数据
                    success: function (data) {
                        if( data.status == 0 ){
                            //返回服务器文件地址
                            resolve( data.data );
                        }else{
                            reject( data );
                            return false;
                        }
                    }
                });
            }else{
                resolve(false);
            }
        } );
        addAD.then( ( data ) => {
            console.log(data);
            // 文件地址String
            let filesUrl = '' ;
            let filesName = '';
            if(data){
                let aUrl = [],
                    aName = [];

                data.forEach((item,idx)=>{
                    aUrl.push( item.uri );
                    aName.push( item.oldfilename );
                });
                filesUrl = aUrl.join('|');
                filesName = aName.join('|');
            }
            // 将公告添加到服务器
            addNewAd( filesUrl, filesName );
        } ).catch( (data)=>{
            if( data.status == 10 ){
                spop_waring( data.msg, function () {$.mask_close_all(); }, outLogin )
            }
        });
    });
    /*----------------------------------------------------------*/

    // 真正的公告发布
    function addNewAd(filesUrl,filesName){
        let title = $('#newADtitle').val();
        let adInfo = editor.getValue();
        $.ajax({
            url : '/manage/announcemen/save.do',
            type : 'post',
            data : {
                annid : title,
                anndetail : adInfo,
                attachmenturl : filesUrl,
                attachmentname : filesName
            },
            dataType : 'json',
            xhrFields : {
                withCredentials: true
            },
            crossDomain: true,
            success : function (data){
                if( data.status == 0 ){
                    spop_ok( data.msg, function () {},function () {
                        $.mask_close_all();

                        window.location.href = './../Admin/ad-list.html';
                    });
                }else{
                    spop_er(data.msg);
                }
            },
            error : function (er){
                spop_er('公告发布失败');
            }
        });
    }
});